package br.ufc.great.xml;

import java.io.Serializable;

/**
 * 
 * @author Leonardo Oliveira Moreira
 *
 * Classe que representa um elemento, nodo ou atributo do documento XML
 */
public class XMLElement implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 7255271536054976296L;

	protected long id = -1;
	
	protected String name = "";
	protected String value = "";
	protected XMLNode parent;

	/**
	 * Construtor
	 * 
	 * @param id
	 * @param parent
	 */
	public XMLElement(long id, XMLNode parent) {
		this.id = id;
		this.parent = parent;
	}

	/**
	 * Construtor
	 * 
	 * @param id
	 * @param name
	 * @param value
	 * @param parent
	 */
	public XMLElement(long id, String name, String value, XMLNode parent) {
		this.id = id;
		this.name = name;
		this.value = value;
		this.parent = parent;
	}

	/**
	 * Método utilizado para retornar o identificador deste elemento
	 * 
	 * @return
	 */
	public long getId() {
		return id;
	}

	/**
	 * Método utilizado para configurar o identificador deste elemento
	 * 
	 * @param id
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * Método utilizado para retornar o nome deste elemento
	 * 
	 * @return
	 */
	public String getName() {
		return name;
	}

	/**
	 * Método utilizado para configurar o nome deste elemento
	 * 
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * Método utilizado para resgatar o valor deste elemento
	 * 
	 * @return
	 */
	public String getValue() {
		return value;
	}

	/**
	 * Método utilizado para configurar o valor deste elemento
	 * 
	 * @param value
	 */
	public void setValue(String value) {
		this.value = value;
	}

	/**
	 * Método utilizado para retornar a referência do nodo pai deste elemento
	 * 
	 * @return
	 */
	public XMLNode getParent() {
		return parent;
	}
	
	/**
	 * Método utilizado para configurar a referência do nodo pai deste elemento
	 * 
	 * @param parent
	 */
	public void setParent(XMLNode parent) {
		this.parent = parent;
	}

}
